
在 Webpack 中，Shimming 是一种将不符合模块化标准的代码（如全局变量、旧版模块等）转换为符合标准的模块化代码的技术。这样可以使这些不符合标准的代码能够被 Webpack 所处理和打包。

通常情况下，Shimming 用于以下几个方面：

- 引入全局变量：一些库或插件可能会定义一些全局变量，在 Webpack 打包时无法自动处理。通过 Shimming 技术，可以将这些全局变量引入到模块中，以便能够被 Webpack 正确处理和打包。
- 引入第三方库：有些第三方库可能没有使用模块化规范，直接暴露了一些全局变量，这些变量在 Webpack 中无法被识别。通过 Shimming 技术，可以将这些第三方库转换为符合模块化标准的代码，以便能够被 Webpack 正确处理和打包。
- 解决环境差异：不同的浏览器和环境可能存在差异，通过 Shimming 技术可以在不同的环境中提供一致的 API，以便开发者更加方便地编写跨平台的代码。

在 Webpack 中，可以使用 ProvidePlugin、imports-loader、exports-loader 等插件来实现 Shimming。通过这些插件，可以将不符合模块化标准的代码转换为符合标准的模块化代码，并在打包时将其加入到模块中，使其能够被正确地处理和打包。